package com.ruoyi.project.warehouse.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.information.domain.DataReportBean;
import com.ruoyi.project.warehouse.domain.DataImport;
import com.ruoyi.project.warehouse.domain.RyDepotItem;
import com.ruoyi.project.warehouse.domain.RyDepotItemVo;

/**
 * 入库Service接口
 *
 * @author you
 * @date 2022-09-06
 */
public interface IRyDepotItemService
{
    /**
     * 查询入库
     *
     * @param id 入库主键
     * @return 入库
     */
    public RyDepotItem selectRyDepotItemById(Long id);

    /**
     * 查询入库列表
     *
     * @param ryDepotItem 入库
     * @return 入库集合
     */
    public List<RyDepotItemVo> selectRyDepotItemList(RyDepotItem ryDepotItem);

    /**
     * 根据条件查询订单明细
     */
    public List<RyDepotItemVo> orderDetailList(DataReportBean dataReportBean);

    /**
     * 根据仓库id和物品id查询锁定数量
     */
    public RyDepotItem getLockNumById(RyDepotItem ryDepotItem);

    /**
     * 根据仓库id和物品id查询已入库数量
     */
    public Long getNumByDepotInventoryId(RyDepotItem ryDepotItem);

    /**
     * 根据仓库id和物品id查询入库记录数
     */
    public int getCountByDepotInventoryId(RyDepotItem ryDepotItem);

    /**
     * 新增入库
     *
     * @param ryDepotItemVo 入库
     * @return 结果
     */
    public int insertRyDepotItem(RyDepotItemVo ryDepotItemVo);

    /**
     * 库存入库导入
     */
    public AjaxResult dataImport(DataImport dataImport);

    /**
     * 批量删除入库
     *
     * @param ids 需要删除的入库主键集合
     * @return 结果
     */
    public int deleteRyDepotItemByIds(Long[] ids);

    /**
     * 删除入库信息
     *
     * @param id 入库主键
     * @return 结果
     */
    public int deleteRyDepotItemById(Long id);
}
